Providing topic based search guidance

ABSTRACT

Methods, systems, and computer-readable media for providing topical search suggestions are provided. Topical search suggestions allow a user to receive search results related to the designated topic or subject matter. Multiple topics may be generated based on search input provided by a user. The search input may be a search prefix that includes one or more words entered into the search query box before the completed search query is submitted to the search engine. A search interface may then present the topics derived from the search prefix to a user before the user submits the query. In another embodiment, the user designates multiple search inputs. Search results may be generated based on the search inputs and then present topics extracted from the search results. In one embodiment, the topics are extracted by performing a natural language analysis of search result metadata.

CROSS-REFERENCE TO RELATED APPLICATIONS

This patent application is a continuation of pending U.S. applicationSer. No. 13/239,971, filed on Sep. 22, 2011, entitled “Providing TopicBased Search Guidance,” and having Attorney Docket No. MECP.161728, theentirety of which is hereby incorporated by reference.

BACKGROUND

Users are able to locate relevant websites and other content using asearch engine. There are different types of searches. Some searches seeka particular answer to a question (e.g., what is the largest city inKansas?) and other searches seek to learn about a topic (e.g., how doesa space elevator work?). Users may struggle to formulate queries thatreturn search results that are helpful. Some search engines suggestpopular queries (based on previous queries submitted to the searchengine) that a user can submit instead of writing their own query.However, the popular queries are often related to the same topic orsubject matter and produce similar results. The popular queries do nothelp the user formulate a query that returns search results related tocomparatively unpopular topics.

SUMMARY

This summary is provided to introduce a selection of concepts in asimplified form that are further described below in the detaileddescription. This summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used in isolation as an aid in determining the scope of the claimedsubject matter.

Embodiments hereof provide topical search suggestions and/or feedback.Topical search suggestions allow a user to designate a topic or subjectmatter to be searched in combination with a query or instead of a query.Embodiments hereof may generate multiple topics based on search inputprovided by a user. In one embodiment, the search input is a searchprefix that includes one or more words entered into the search query boxbefore the completed search query is submitted to the search engine. Asearch interface then presents the topics derived from the search prefixto a user. The interface may display the topics in a dropdown box thatallows the user to select one of the topics instead of completing thequery. Embodiments hereof may also present auto-complete querysuggestions and a corresponding topic.

In one embodiment, the user designates multiple search inputs. Thesearch inputs may be text within a web page designed by the user assearch input. The search inputs could be multiple search queriessubmitted during a search session. Embodiments hereof generate searchresults based on the search inputs and then presents topics extractedfrom the search results. In one embodiment, the topics are extracted byperforming a natural language analysis of search result metadata. Themetadata may include a search result's uniform resource locator (“URL”),title, and summary text (i.e., a small excerpt shown with the searchresult).

BRIEF DESCRIPTION OF THE DRAWINGS

The present disclosure makes reference to the attached drawing figures,wherein:

FIG. 1 is a block diagram of an exemplary computing environment suitablefor implementing embodiments hereof;

FIG. 2 is a diagram of a computing system architecture suitable forgenerating topical query suggestions, in accordance with an embodimenthereof;

FIG. 3 is a diagram of communications occurring between components in acomputing environment that generates topical query suggestions, inaccordance with an embodiment hereof;

FIG. 4 is a diagram of a search interface that shows topical querysuggestions and auto-complete queries in response to a search prefix, inaccordance with an embodiment hereof;

FIG. 5 is flow chart showing a method of generating topical querysuggestions, in accordance with an embodiment hereof;

FIG. 6 is flow chart showing a method of generating topical querysuggestions from a search prefix, in accordance with an embodimenthereof; and

FIG. 7 is a flow chart showing a method of generating topical querysuggestions in response to multiple search inputs, in accordance with anembodiment hereof.

DETAILED DESCRIPTION

The subject matter hereof is described with specificity herein to meetstatutory requirements. However, the description itself is not intendedto limit the scope of this patent. Rather, the inventors havecontemplated that the claimed subject matter might also be embodied inother ways, to include different steps or combinations of steps similarto the ones described in this document, in conjunction with otherpresent or future technologies. Moreover, although the terms “step”and/or “block” may be used herein to connote different elements ofmethods employed, the terms should not be interpreted as implying anyparticular order among or between various steps herein disclosed unlessand except when the order of individual steps is explicitly described.

Embodiments hereof compute and present potential topical searchsuggestions and/or feedback. Topical search suggestions allow a user todesignate a topic or subject matter to be searched in combination with aquery or instead of a query. Embodiments hereof may generate multipletopics based on search input provided by a user. In one embodiment, thesearch input is a search prefix that includes one or more words enteredinto the search query box before the completed search query is submittedto the search engine. A search interface then presents the topicsderived from the search prefix to a user. The interface may display thetopics in a dropdown box that allows the user to select one of thetopics instead of completing the query. Embodiments hereof may alsopresent auto-complete query suggestions and a corresponding topic.

In one embodiment, the user designates multiple search inputs. Thesearch inputs may be text within a web page designed by the user assearch input. The search inputs could be multiple search queriessubmitted during a search session. Embodiments hereof generate searchresults based on the search inputs and then present topics extractedfrom the search results. In one embodiment, the topics are extracted byperforming a natural language analysis of search result metadata. Themetadata may include a search result's uniform resource locator (“URL”),title, and summary text (i.e., a small excerpt shown with the searchresult).

In one aspect, a method of generating topical query suggestions isprovided. The method includes receiving a search query and generating apreliminary set of search results for the search query. The method alsocomprises extracting topics from the set of search results. The methodalso comprises outputting the topics for display before the preliminarysearch results are output for display and receiving a selection of anindividual topic within the topics. The method also comprises outputtingfor display a subset of search results from the preliminary set ofsearch results that are associated with the individual topic.

In another aspect, a method of generating topical query suggestions froma search prefix is provided. The method includes receiving a searchprefix. The search prefix is a group of characters entered by a userinto a search interface. The search prefix is one or more charactersless than a complete search query. The method also comprises generatingan auto-complete query that is based on the search prefix. The methodalso comprises generating a set of search results for the auto-completequery. The method also comprises extracting topics from the set ofsearch results. The method also comprises outputting the topics fordisplay and selection by a user.

In another aspect, a method of generating topical query suggestions inresponse to multiple search inputs is provided. The method includesreceiving multiple search inputs from a user that are all part of asearch session and, for each search input, generating a set of searchresults. The method also includes extracting topics from each set ofsearch results. The method also includes identifying one or more commontopics that were extracted from at least two of the sets of searchresults. The method also includes outputting the one or more commontopics for display. The method also includes receiving a selection of anindividual topic within the one or more common topics. The method alsoincludes outputting for display a subset of search results from the setof search results that are associated with the individual topic.

Having briefly described an overview of embodiments hereof, an exemplaryoperating environment suitable for use in implementing embodimentshereof is described below.

Exemplary Operating Environment

Referring to the drawings in general, and initially to FIG. 1 inparticular, an exemplary operating environment for implementingembodiments hereof is shown and designated generally as computing device100. Computing device 100 is but one example of a suitable computingenvironment and is not intended to suggest any limitation as to thescope of use or functionality of the present disclosure. Neither shouldthe computing device 100 be interpreted as having any dependency orrequirement relating to any one or combination of componentsillustrated.

The subject matter hereof may be described in the general context ofcomputer code or machine-useable instructions, includingcomputer-executable instructions such as program components, beingexecuted by a computer or other machine, such as a personal dataassistant or other handheld device. Generally, program components,including routines, programs, objects, components, data structures, andthe like, refer to code that performs particular tasks, or implementsparticular abstract data types. Embodiments hereof may be practiced in avariety of system configurations, including handheld devices, consumerelectronics, general-purpose computers, specialty computing devices,etc. Embodiments hereof may also be practiced in distributed computingenvironments where tasks are performed by remote-processing devices thatare linked through a communications network.

With continued reference to FIG. 1, computing device 100 includes a bus110 that directly or indirectly couples the following devices: memory112, one or more processors 114, one or more presentation components116, input/output (I/O) ports 118, I/O components 120, and anillustrative power supply 122. Bus 110 represents what may be one ormore busses (such as an address bus, data bus, or combination thereof).Although the various blocks of FIG. 1 are shown with lines for the sakeof clarity, in reality, delineating various components is not so clear,and metaphorically, the lines would more accurately be grey and fuzzy.For example, one may consider a presentation component such as a displaydevice to be an I/O component 120. Also, processors have memory. Theinventors hereof recognize that such is the nature of the art, andreiterate that the diagram of FIG. 1 is merely illustrative of anexemplary computing device that can be used in connection with one ormore embodiments hereof. Distinction is not made between such categoriesas “workstation,” “server,” “laptop,” “handheld device,” etc., as allare contemplated within the scope of FIG. 1 and reference to “computer”or “computing device.”

Computing device 100 typically includes a variety of computer-storagemedia. By way of example, and not limitation, computer-storage media maycomprise Random Access Memory (RAM); Read Only Memory (ROM);Electronically Erasable Programmable Read Only Memory (EEPROM); flashmemory or other memory technologies; Compact Disk Read-Only Memory(CDROM), digital versatile disks (DVDs) or other optical or holographicmedia; magnetic cassettes, magnetic tape, magnetic disk storage or othermagnetic storage devices. The computer-storage media may benontransitory.

Memory 112 includes computer-storage media in the form of volatileand/or nonvolatile memory. The memory 112 may be removable,nonremovable, or a combination thereof. Exemplary memory includessolid-state memory, hard drives, optical-disc drives, etc. Computingdevice 100 includes one or more processors 114 that read data fromvarious entities such as bus 110, memory 112 or I/O components 120.Presentation component(s) 116 present data indications to a user orother device. Exemplary presentation components 116 include a displaydevice, speaker, printing component, vibrating component, etc. I/O ports118 allow computing device 100 to be logically coupled to other devicesincluding I/O components 120, some of which may be built in.Illustrative I/O components 120 include a microphone, joystick, gamepad, satellite dish, scanner, printer, wireless device, etc.

Exemplary System Architecture

Turning now to FIG. 2, an exemplary computing system architecture 200suitable for generating topical query suggestions is shown, inaccordance with an embodiment hereof. The computing system architecture200 shown in FIG. 2 is an example of one suitable computing systemarchitecture 200. The computing system architecture 200 comprises on oneor more computing devices similar to the computing device 100 describedwith reference to FIG. 1. The computing system architecture 200 shouldnot be interpreted as having any dependency or requirement related toany single module/component or combination of modules/componentsillustrated therein. The computing system architecture 200 includes asearch front end 210, a search engine 212, a topic extractor 214, asearch data store 216, and an auto-complete query component 218.

The search front end 210 generates a search interface through which auser inputs search criteria and receives search results. The searchinterface may be communicated over a network, such as the Internet, anddisplayed on a browser operating on a client device. In anotherembodiment, the search interface may interact with a search tool bar.The search front end 210 interacts with the search engine 212 to receivesearch results that are output for display to the user. The search frontend 210 may communicate a search query to the search engine and receivea set of search results from the search engine 212. The search front end210 may communicate with other components such as the topic extractor214.

The topic extractor 214 may communicate a series of topics related to aquery to the search front end 210. These topics may be presented forselection by a user within the interface generated by the search frontend 210. The search front end 210 may also communicate with othercomponents that are not shown within computing system architecture 200.For example, the search front end 210 may communicate with anadvertising engine that provides advertisements to be presented on asearch results page. The search front end 210 may communicate auser-selected topic to the advertising engine and receive advertisementsthat related to the user-selected topic.

The search engine 212 receives search queries and generates searchresults to the user. The search engine may include crawlers that exploreavailable content and create an index that may be used to identifyrelevant content in response to search queries. The search engine mayalso rank search results based on relevance or responsiveness to aquery. The search queries results shown in response to the searchqueries, and user interactions with these results may be stored withinthe search data store 216. The search data store 216 may also includethe previously mentioned search indices, as well as other datasetsgenerated by components shown or not shown in FIG. 2. In addition to thesearch engine 212, other components may read from and write data to thesearch data store 216.

The topic extractor 214 extracts topics from various content. Forexample, the topic extractor 214 is able to extract topics from webpages. In one embodiment, the search engine 212 sends a set of searchresults, comprising web pages, to the topic extractor 214. The topicextractor 214 analyzes the web pages to extract key words, entities, anddetermine a topic that is associated with the web page. A topic is asubject-matter category associated with the web page. Once the topicextractor 214 has ascertained one or more topics for the web pages,these topics may be communicated to the search front end 210, whichdisplays them to a user for selection.

The topics may be extracted using natural language processing techniqueslike TF-IDF (term frequency, inverse document frequency) that can beused to determine a list of keywords or likely topics for each page. Themost frequently extracted topics across the multiple pages may bepresented to the user for query assistance. The topic extractor 214 maymaintain an index that identifies topics and the web page from whichthey are extracted. Once a topic is selected by a user, the index may beused to return search results that are associated with the topic.

In one embodiment, the topic extractor 214 analyzes only a web page'smetadata to determine a topic, for example a uniform resource locator(“URL”), summary text (i.e., a small excerpt shown with the searchresult), and title. In this embodiment, the remaining content of the webpage is not analyzed by the topic extractor to determine the subjectmatter or topic of the web page.

The auto-complete component 218 receives a search prefix and attempts togenerate suggested queries based on the search prefix. The search prefixincludes characters submitted by a user in a search interface prior toselecting or submitting the search. The prefix may be less than a fullword or as little as a single letter. In other embodiments, the prefixmay include multiple words. In another embodiment, the prefix mayinclude a few words as well as an incomplete word. The auto-completecomponent 218 generates suggested queries and presents these to the userfor possible selection. As additional characters are entered by a user,the prefix may change and the auto-complete component 218 may change thesuggested queries in accordance with the additional characters received.The auto-complete component 218 may attempt to match a search prefixwith queries that were frequently submitted by other users previously.The auto-complete component 218 may communicate one or moreauto-complete queries to the search engine 212, which generates searchresults that are communicated to the topic extractor 214. In this way,topics are generated for presentation to the user before the searchquery is completed.

Turning now to FIG. 3, communications that enable topics to be displayedto a user in a search interface are shown, in accordance with anembodiment hereof. The computing environment 300 includes a clientdevice 305, a front end 310, a search engine 312, and a topic extractor314. The client device 305 may be a computing device similar tocomputing device 100 described previously with reference to FIG. 1.Exemplary devices include a laptop, desktop, tablet, smart phone, and atelevision. The client device 305 may be communicatively coupled to theother components via a network, such as the Internet.

The search front end 310 may be similar to the search front end 210described previously with reference to FIG. 2. The search engine 312 maybe similar to the search engine 212 described previously with referenceto FIG. 2. The topic extractor 314 may be similar to the topic extractor214 described previously with reference to FIG. 2.

Initially, the client device 305 communicates a search prefix 320 to thesearch front end 310. The search prefix 320 may be a series ofcharacters that start to form a search query. The search prefix 320 mayinclude characters entered into a search interface prior to submitting acompleted search query. The search front end 310 passes the searchprefix 320 along to search engine 312.

The search engine 312 generates 322 a series of search results that areresponsive to the search prefix. The search engine may first communicatethe search prefix 320 to an auto-complete component (not shown) thatgenerates full queries based on the search prefix. A full query maymatch or partially match the search prefix. One or more of the fullqueries may be used to generate search results. The search results 324are then generated using the one or more full queries. These results 324are communicated from the search engine 312 to the topic extractor 314.The topic extractor 314 extracts 330 topics 332 from the search results324. As mentioned previously, the topic extractor 314 may use a naturallanguage processing method to extract topics from the results.

The topics 332 are communicated from the topic extractor 314 to thesearch front end 310. The search front end 310 then integrates 334 thetopics into a query assistance feature that may be similar to the onedescribed subsequently in FIG. 4. The help feature is then communicatedas an auto suggest 336 to the client device 305. A user of the clientdevice 305 may select one or more of the topics.

Turning now to FIG. 4, a search interface 400 showing topicalsuggestions is shown, in accordance with an embodiment hereof. Thesearch interface 400 may be generated by a search front end anddisplayed in a browser window. Embodiments hereof are not limited todisplaying the interface in a browser window. The interface 400 includesa search input box 410. The letters “jagu” 412 are entered within thesearch input box 410. The letters “jagu” 412 is an example of a searchprefix. As mentioned previously, a search prefix comprises one or morecharacters entered into a search input box prior to submitting thequery.

Beneath the search input box, a search assistance box 420 is shown. Thesearch assistance box 420 includes an auto-complete query “jaguar” 422.An auto-complete query may be a popular query that starts with thesearch prefix entered into the search box. The auto complete query is afull query that the user may select instead of submitting their query.

The search assistance box 420 also includes three topics that the usermay select. The topics include jaguar cat 424, Jaguar car 426, andJaguar football 428. The user may select any of these topics and thenreceive search results that are responsive to jaguar and within theselected topic. For example, if the user selected jaguar cat 424, searchresults that were responsive to jaguar and related to the topic catwould be shown. In this case, the topics are shown with theauto-complete query as a pair. In another embodiment, the topics may beshown without the auto-complete query. For example, the searchassistance box could list “football,” “car,” and “cat” instead of“jaguar football,” “jaguar car,” and “jaguar cat.”

Turning now to FIG. 5, a flowchart showing a method 500 of generatingtopical query suggestions is shown, in accordance with an embodimenthereof. A topical query suggestion gives a user one or more topics toselect in combination with their query or instead of their query. Atstep 510, a search query is received. The search query may be anauto-complete search query generated based on a search prefix input intoa search interface by a user. In another embodiment, the search query isinput into the search interface but not submitted for searching.

At step 520, a preliminary set of search results are generated. Thepreliminary set of search results are responsive to the search query.The preliminary set of search results may be generated by a searchengine. The preliminary set of search results may comprise a thresholdnumber of the total responsive search results returned by a searchengine (which can easily number in the thousands). For example, the top50 search results returned by a search engine may form the set of searchresults. The search results may be ranked by relevance before applyingthe threshold to form the set of search results. Thus, the preliminaryset of search results may be the 50 highest ranked search results.

At step 530, topics are extracted from the set of search results. In oneembodiment, the topics are extracted using a natural language processingtechnique. In one embodiment, the topics are extracted by applying thenatural language processing technique only to metadata associated withthe search results. Examples of metadata include a uniform resourcelocator (“URL”) and a title of the search result. Other metadataincludes keywords associated with the search results, and summary text(i.e., a small excerpt shown with the search result). In anotherembodiment, the content of the web pages or documents is analyzedinstead of or in addition to the metadata.

At step 540, the topics are output for display. The topics are outputfor display before the preliminary search results are output fordisplay. In other words, the user is presented the one or more topicsbefore any search results are displayed to the user. In one embodiment,the topics are displayed to the user in a dropdown query assistance box,such as the one described previously with reference to FIG. 4. Otherinterfaces are possible. For example, the user may be presented with atopic selection interface that allows the user to select one or moretopics.

At step 550, a selection of an individual topic within the topics isreceived. A user may select a topic by clicking on it. The selection maybe communicated from a search interface to a search engine, which usesthe selection to return relevant results. At step 560, a subset ofsearch results from the preliminary set of search results that areassociated with the individual topic are output for display. The subsetof search results may be selected by the search engine. If there areless than a threshold number of search results within the preliminaryset of search results that conform with the selected topic, thenadditional search results that do not relate to the topic may bepresented at the bottom of the search results page. For example, asearch results page may show ten search results to the user. If onlyseven search results are available that are related to the selectedtopic, then they are shown at the top of the search results page with anadditional three search results drawn from one or more other topics. Inanother embodiment, the search engine seeks additional search resultsthat are responsive to the topic from outside of the preliminary set ofsearch results that were initially generated. This can be accomplishedby rerunning the search that was used to generate the preliminary searchresults and then filtering by the selected topic.

In a further embodiment, the topics are presented for display along withsearch results even after a topic has been previously selected by theuser. In the event the user does not find search results that answer theuser's question, the user may select a different topic and the searchresults would be refreshed based on that topic's selection without theuser entering a new query.

Turning to FIG. 6, a method 600 of generating topical query suggestionsfrom a search prefix is shown, in accordance with an embodiment hereof.As mentioned previously, the search prefix is a group of charactersentered by the user into a search interface. In general, the searchprefix is one or more characters less than a complete search query. Forexample, the characters “jagu” may be a search prefix of the query“jaguar.” Thus, a search prefix implies that the search query is in somesense incomplete and that the user is still adding characters. However,in one embodiment, the search prefix may be a complete query, but beforethe query is actually submitted to the search engine. Once a searchquery is submitted to a search engine, it becomes a complete query andis no longer a search prefix.

At step 610, a search prefix is received. The search prefix may bereceived by an auto-complete component. At step 620, an auto-completequery is generated that is based on the search prefix. The generation ofan auto-complete query has been described previously.

At step 630, a set of search results that are responsive to theauto-complete query are generated. As mentioned previously, the set ofsearch results may be the 50 most relevant search results that areresponsive to the auto-complete query. Fifty is just an example and adifferent threshold number of search results could be used to generatethe set of search results.

At step 640, topics are extracted from the set of search results. Asmentioned, a natural language processing technique may be used toextract the topics. In one embodiment, the topics are extracted byanalyzing only the metadata associated with the search results. At step650, the topics are output for display and selection by a user. Once aselection of an individual topic is received, the search results thatare responsive to the individual topic may be output for display. Thisillustrates that the topics are output for display before search resultsare output for display. In other words, the search results are generatedin the background so that topics may be extracted from them, but theinitial set of search results are not presented for output for display.In one embodiment, the topics are output for display in combination withone or more auto-complete query suggestions. As an example from FIG. 4,the auto-complete query jaguar could be combined with the topic cat.

Turning to FIG. 7, a method 700 of generating topical query suggestionsin response to multiple search inputs is shown, in accordance with anembodiment hereof. At step 710, multiple search inputs are received froma user. The multiple search inputs are all part of a search session.That the search inputs are all part of a search session may be madeexplicit by input received from a user. For example, a user may push abutton on a search interface, such as one associated with a searchtoolbar, that indicates a search session is starting. In anotherembodiment, the delineation of a search session is determined byanalyzing a user's online behavior. For example, search inputs submittedin close succession to each other may be determined to be part of acommon search session. As time passes between search queries, subsequentsearch inputs may be associated with a new search session. In additionto specifying that a search session is starting, a user may provideexplicit input indicating that a search session is concluded. The searchinputs may be a query. In some cases, the query may be submitted to asearch engine and results are returned. In this embodiment, the multiplesearch inputs are a series of searches conducted by a user from thesearch inputs of step 710.

In another embodiment, the search inputs are portions of text (e.g.,words or phrases) explicitly designated by a user as a search input. Forexample, a user may highlight and click on words within a web page todesignate them as search inputs. In one embodiment, a user can dragwords and phrases into a search session interface. The words and phraseswithin a single drop may constitute a single search input. Thus, as theuser repeats the drag operation with different phrases, the multiplesearch inputs are generated.

In another embodiment, the search inputs are keywords that areautomatically extracted from a web page a user is viewing. In this way,keywords are extracted from web pages as the user navigates through aseries of pages during a search session. The user does not need toexplicitly specify any keywords in this embodiment.

At step 720, for each search input, a set of search results isgenerated. The search results may be generated by a search engine. Atstep 730, topics are extracted from each set of search results. At step740, one or more common topics between the sets of search results areidentified. The extracted topics may be ranked based on occurrencewithin the different sets of search results. For example, if a topic isextracted from each of the sets of search results it may be rankedhighly. In addition, the number of times a topic occurs within each setof search results may be taken into consideration. Thus, a topic thatoccurs multiple times in each set of search results may be ranked higherthan a topic that occurs only once in each set of search results. In oneembodiment, more weight is given to the amount of search result setsfrom which a topic is extracted than the number of times a topic isextracted from a single set of search results.

At step 750, the one or more common topics are output for display. Atstep 760, a selection of individual topics within the one or more commontopics is received. At step 780, a subset of the search results from theset of search results are output for display by a user. The subset ofsearch results are associated with the individual topic. In oneembodiment, the set of search results are not output for display to auser prior to receiving the selection.

In one embodiment, an instruction to start a new search session isreceived from the user. Search inputs are collected through one or moremethods until a user provides an instruction that the search session iscomplete. At that time, the topics are displayed to the user forselection. The user then selects the topic or topics, and search resultsresponsive to those topics are provided.

Embodiments hereof have been described to be illustrative rather thanrestrictive. It will be understood that certain features andsubcombinations are of utility and may be employed without reference toother features and subcombinations. This is contemplated by and iswithin the scope of the claims.

What is claimed is:
 1. A computing system comprising: one or moreprocessors; and computer storage memory having computer-executableinstructions stored thereon that, when executed by the one or moreprocessors, implement a method for generating topical query suggestions,the method comprising: providing a search interface for display at a webbrowser; receiving a search query that is provided at the searchinterface; generating a preliminary set of search results for the searchquery, the preliminary set of search results comprising web pagesresponsive to the search query; extracting a plurality of topics fromthe preliminary set of search results; outputting the plurality oftopics for display at the search interface before a subset of searchresults from the preliminary set of search results is output fordisplay; receiving an indication of a selection of a topic from theplurality of topics; and outputting for display at the search interfacethe subset of search results from the preliminary set of search results,wherein the subset of search results is associated with the selectedtopic.
 2. The computing system of claim 1, wherein the plurality oftopics are extracted from the preliminary set of search results byperforming a natural language analysis on individual search resultswithin the preliminary set of search results.
 3. The computing system ofclaim 2, wherein the natural language analysis is performed on onlyuniform resource locators (“URLs”) and titles of the individual searchresults, and wherein a content of the individual search results is notanalyzed.
 4. The computing system of claim 1, wherein the searchinterface includes a search box for receiving the search query.
 5. Thecomputing system of claim 4, wherein the plurality of topics is outputfor display in a box that drops down from the search box.
 6. Thecomputing system of claim 1, wherein the method further comprisesoutputting the plurality of topics for display at the search interfacewith the subset of search results, wherein a user may select a new topicfrom the plurality of topics.
 7. The computing system of claim 6,wherein the method further comprises: receiving a selection of the newtopic; and outputting for display at the search interface a new subsetof search results from the preliminary set of search results, whereinthe new subset of search results is associated with the new topic. 8.The computing system of claim 1, wherein the preliminary set of searchresults comprises a threshold number of a total number of search resultsresponsive to the search query.
 9. One or more computer-storage deviceshaving computer-executable instructions embodied thereon that, whenexecuted by a computing device, perform a method of generating topicalquery suggestions, the method comprising: receiving a search query;generating a preliminary set of search results for the search query, thepreliminary set of search results comprising web pages responsive to thesearch query; at a processor of the computing device, extracting topicsfrom the preliminary set of search results; outputting the topics fordisplay; receiving a selection of an individual topic included in thetopics; and based on receiving the selection of the individual topic,outputting for display a subset of search results from the preliminaryset of search results, wherein the subset of search results isassociated with the individual topic.
 10. The one or morecomputer-storage devices of claim 9, wherein the topics are extractedfrom the preliminary set of search results by performing a naturallanguage analysis on individual search results within the preliminaryset of search results.
 11. The one or more computer-storage devices ofclaim 10, wherein the natural language analysis is performed on onlyuniform resource locators (“URLs”) and titles of the individual searchresults, and wherein a content of the individual search results is notanalyzed.
 12. The one or more computer-storage devices of claim 9,wherein the topics are output for display in a box that drops down froma search box into which the search query is input.
 13. The one or morecomputer-storage devices of claim 9, wherein the method furthercomprises outputting the topics for display with the subset of searchresults to allow a user to select a new topic after viewing the subsetof search results.
 14. The one or more computer-storage devices of claim13, wherein the method further comprises: receiving a selection of thenew topic; and displaying a new subset of search results from thepreliminary set of search results, wherein the new subset of searchresults is associated with the new topic.
 15. A computing systemcomprising: one or more processors; and computer storage memory havingcomputer-executable instructions stored thereon that, when executed bythe one or more processors, implement a method for generating topicalquery suggestions based on a search prefix, the method comprising:receiving the search prefix, the search prefix comprising a group ofcharacters provided at a search interface, wherein the search prefix isone or more characters less than a complete search query; generating anauto-complete query that is based on the search prefix; generating a setof search results for the auto-complete query; extracting a plurality oftopics from the set of search results; and outputting the plurality oftopics for display at the search interface prior to receiving thecomplete search query.
 16. The computing system of claim 15, wherein themethod further comprises: receiving an indication of a selection of atopic from the plurality of topics; and outputting for display a subsetof search results from the set of search results, wherein the subset ofsearch results is associated with the selected topic.
 17. The computingsystem of claim 15, wherein the plurality of topics is output fordisplay with one or more auto-complete query suggestions.
 18. Thecomputing system of claim 15, wherein the plurality of topics isextracted from the set of search results by performing a naturallanguage analysis on individual search results within the set of searchresults.
 19. The computing system of claim 18, wherein the naturallanguage analysis is performed on only metadata of the individual searchresults, and a content of the individual search results is not analyzed.20. The computing system of claim 15, wherein the plurality of topics isoutput for display based on a frequency of extraction from the set ofsearch results.